﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Infra.Business;

using System.Data.SqlClient;


namespace softpower.forms.ui
{

    public partial class frmRegrasAcesso : Form
    {


        private static frmRegrasAcesso frm = null;
        public frmRegrasAcesso()
        {
            InitializeComponent();
        }
        



        public static frmRegrasAcesso Instancia()
        {
            if (frm == null || frm.IsDisposed)
            {
                frm = new frmRegrasAcesso();
            }
            return frm;
        }


            private void MostraGRIDGrupos()
            {
                List<Infra.Entity.SEGGROUP> Grupos = GrupoBLL.Pesquisar(Convert.ToInt32("0" + txtCodGrupo.Text), txtNomeGrupo.Text);
                  grdGrupo.DataSource = Grupos;

                grdGrupo.Columns[0].Width =1;
                grdGrupo.Columns[1].Width = 690;
             }



            void MostraUtilizadores()
            {
                List<Infra.Entity.SEGUSER> Utilizadores = UserBLL.Pesquisar(Convert.ToInt32("0" + txtcodUser.Text), txtNomeUtilizador.Text);
                grdutilizadores.DataSource = Utilizadores;

                grdutilizadores.Columns[0].Width = 1;
                grdutilizadores.Columns[1].Width = 685;
                grdutilizadores.Columns[2].Width = 1;
            }



            private void ComboBOXUtilizadorGrupo()
            {
                List<Infra.Entity.SEGUSER> Utilizadores = UserBLL.Pesquisar(Convert.ToInt32("0" + txtcodUser.Text), txtNomeUtilizador.Text);
                cbxGrupoUtilizador.DataSource = Utilizadores;

                cbxGrupoUtilizador.ValueMember = "CODUSER";
                cbxGrupoUtilizador.DisplayMember = "STRUSER";
                //cbxGrupoUtilizador.Focus();
            }



        private void btnSalvar_Click(object sender, EventArgs e)
        {
            if (tabGrupos.CanFocus == true)
            {

                    if (!String.IsNullOrEmpty(txtNomeGrupo.Text))
                    {
                        GrupoBLL.Salvar(Convert.ToInt32("0" + txtCodGrupo.Text), txtNomeGrupo.Text);
                        MessageBox.Show("Registo Inserido com sucesso!");
                        limparPais();
                        MostraGRIDGrupos();
                    }
                    else
                    {
                        lblErroP.Text = "Campo obrigatório";
                    }

            }





            //Tab Criar utilizador
            if (tabUtilizadores.CanFocus == true)
            {
                try
                {
                    if (txtPasswordUser.Text == txtConfirmaPasswordUser.Text)
                    {
                        UserBLL.Salvar(Convert.ToInt32("0" + txtcodUser.Text), txtNomeUtilizador.Text, txtPasswordUser.Text);
                        MessageBox.Show("Registo Inserido com sucesso!");
                        limparUtilizador();
                        MostraUtilizadores();
                    }
                    else
                        MessageBox.Show("Verifica as Senhas se são Iguais!...");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }



        void limparUtilizador()
        {
            txtNomeUtilizador.Text = "";
            txtPasswordUser.Text = "";
            txtConfirmaPasswordUser.Text = "";
        }

        void limparPais()
        {
            txtCodGrupo.Text = "";
            txtNomeGrupo.Text = "";
        }





        private void btnAlterar_Click(object sender, EventArgs e)
        {
            if (tabGrupos.CanFocus == true)
            {
                if (!String.IsNullOrEmpty(txtNomeGrupo.Text))
                {
                    GrupoBLL.Salvar(Convert.ToInt32("0" + txtCodGrupo.Text), txtNomeGrupo.Text);
                    MessageBox.Show("Registo Alterado com sucesso!");
                    limparPais();
                    MostraGRIDGrupos();
                }
                else
                    lblErroP.Text = "Campo obrigatório";
            }


            if (tabUtilizadores.CanFocus == true)
            {
                try
                {
                    if (txtPasswordUser.Text == txtConfirmaPasswordUser.Text)
                    {
                        UserBLL.Salvar(Convert.ToInt32("0" + txtcodUser.Text), txtNomeUtilizador.Text, txtPasswordUser.Text);
                        MessageBox.Show("Registo Alterado com sucesso!");
                        limparUtilizador();
                        MostraUtilizadores();
                    }
                    else
                        MessageBox.Show("Verifica as Senhas se são Iguais!...");
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

        }



        private void frmRegrasAcesso_Load(object sender, EventArgs e)
        {
            MostraGRIDGrupos();
            MostraUtilizadores();
            ComboBOXUtilizadorGrupo();
        }



        private void grdGrupo_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            txtCodGrupo.Text = grdGrupo[0, grdGrupo.CurrentRow.Index].Value.ToString();
            txtNomeGrupo.Text = grdGrupo[1, grdGrupo.CurrentRow.Index].Value.ToString();
        }




        private void btnCancelar_Click(object sender, EventArgs e)
        {
            if (tabGrupos.CanFocus == true)
            {
                txtCodGrupo.Text = "";
               txtNomeGrupo.Text = "";
            }


            if (tabUtilizadores.CanFocus == true)
            {
                txtcodUser.Text = "";
                txtNomeUtilizador.Text = "";
                txtPasswordUser.Text = "";
                txtConfirmaPasswordUser.Text = "";
                MostraUtilizadores();
            }

        }







        private void grdutilizadores_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            txtcodUser.Text = grdutilizadores[0, grdutilizadores.CurrentRow.Index].Value.ToString();
            txtNomeUtilizador.Text = grdutilizadores[1, grdutilizadores.CurrentRow.Index].Value.ToString();
            txtPasswordUser.Text = grdutilizadores[1, grdutilizadores.CurrentRow.Index].Value.ToString();
            txtNomeGrupo.Text = txtPasswordUser.Text;
        }





    }
}
